#ifndef SHADER_H_
#define SHADER_H_

#include "glew.h"
#include "ShaderLibrary.hpp"
#include <QtCore>
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
#include <cassert>

class FragmentShader;
class VertexShader;

class Shader 
{
public:
	Shader( std::string vertexShader, std::string fragmentShader );
	virtual ~Shader() { }
	
	virtual void bind();
	virtual void unbind();
	
	GLuint getUniformLocation( std::string name );
	
protected:
	
	FragmentShader *fragment;
	VertexShader* vertex;
	
	GLuint m_programId;
};

#endif
